package dormouse.vfs.task;

import java.util.List;

import org.apache.commons.vfs2.FileObject;

/**
 * This interface defines the required methods for a file task. Implementations
 * of this task should extend the appropriate Task implementation. This might be
 * the JavaFX Task or the Swing Application Framework's task, depending on the
 * implementation.
 */
public interface IFileTask {

	/**
	 * This method sets the list of files over which the task will operate.
	 * 
	 * @param files
	 *            the list of files on which to operate.
	 */
	void setFileList(List<FileObject> files);

	/**
	 * This method sets the file used by the task.
	 * 
	 * @param file
	 *            the file on which to operate.
	 */
	void setFile(FileObject file);

	/**
	 * This method gets an array of file extensions supported by this task.
	 * 
	 * @return a list of file extensions supported by this task, or null if the
	 *         task supports all file types
	 */
	String[] getFileExtensions();

}
